ACCTON_LKM = acctonlkm
ACCTONSRC_DIR = $(ACCSRC)
KMODULE_OUTPUT = $(ACCROOTFS)/lib/modules/2.6.19.2

ACCTON_OBJS = \
	$(ACCTONSRC_DIR)/cmnlib/kernel/kernel/linux/k_sysfun.c \
	$(ACCTONSRC_DIR)/cmnlib/kernel/kernel/linux/k_root.c \
	$(ACCTONSRC_DIR)/cmnlib/kernel/memmgmt/k_l_ipcmem.c \
	$(ACCTONSRC_DIR)/cmnlib/kernel/memmgmt/k_l_mm.c \
	$(ACCTONSRC_DIR)/kernel/driver/phyaddr_access/k_phyaddr_access.c \
	$(ACCTONSRC_DIR)/kernel/driver/phyaddr_access/${MODEL_NAME}/k_phyaddr_map.c \

include $(ACCTONSRC_DIR)/kernel/accton_mk.include
CPPFLAGS += \
	-I$(ACCTONSRC_DIR)/cmnlib/kernel/kernel/linux \
	-I$(ACCTONSRC_DIR)/cmnlib/user/kernel/linux \
	-I$(ACCTONSRC_DIR)/cmnlib/user/memmgmt \
	-I$(ACCTONSRC_DIR)/user/core/mgmt/dhcp/include \
	-I$(ACCTONSRC_DIR)/user/core/mgmt/stkmgmt/include \
	-I$(ACCTONSRC_DIR)/user/driver/devdrv/include \
	-I$(ACCTONSRC_DIR)/kernel/driver/phyaddr_access/${MODEL_NAME} \
	-I$(ACCTONSRC_DIR)/kernel/driver/phyaddr_access/include \
	-I$(ACCTONSRC_DIR)/user/driver/phyaddr_access \
	-DCMNLIB_DEBUG

obj-m := $(ACCTON_LKM).o
$(ACCTON_LKM)-objs := $(notdir $(ACCTON_OBJS:.c=.o))

.PHONY: all install uninstall clean makelink

all: $(ACCTON_LKM).ko

$(ACCTON_LKM).ko: makelink $(notdir $(ACCTON_OBJS))
	$(MAKE) -C $(KERNDIR) SUBDIRS=$(PWD) O=$(KBUILD_OUTPUT) modules

install:
	mkdir -p $(KMODULE_OUTPUT)
	cp $(ACCTON_LKM).ko $(KMODULE_OUTPUT)

uninstall:
	rm $(KMODULE_OUTPUT)/$(ACCTON_LKM).ko

clean:
	rm -rf *.c *.o *.ko .*.cmd Module.symvers .tmp_versions 2> /dev/null

makelink:
	echo $(ACCTON_OBJS) | xargs -r -n1 ln -sf
